home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 August: Tool Chest / Dev.CD Aug 00 TC Disk 2.toast / pc / sample code / networking / pgpuam / - you must read me - < prev    next >
Encoding:
PGP Message  |  2000-06-23  |  6.6 KB  |  194 lines

  1. -----BEGIN PGP SIGNED MESSAGE-----
  2. Hash: SHA1
  3.  
  4. PGPuam - Public Key Authentication for AppleShare IP.
  5.  
  6. By Vinnie Moscaritolo 
  7. Last Revision 1.0b1 10/15/98
  8.  
  9. THIS IS SAMPLE CODE!
  10.  
  11. Before you go any further, I would suggest that you check my
  12. website at <http://www.vmeng.com/vinnie/Papers/pgpuam.html>
  13. to see if there is a nwer copy of both the code and/or
  14. documentation. This release is a bit premature, but I wanted
  15. to get the code out there to demonstrate what can be done
  16. with the AppleShare IP UAM sdk.
  17.  
  18. WHAT IS IT?
  19.  
  20. PGPuam  is an enhancement to the standard AppleShare IP User
  21. Access Methods (UAM) that enables a user to perform two-way
  22. strongly authenticated logins to an AppleShare IP server
  23. from a Mac OS client. The PGPuam system consists of two
  24. major components, a client and a server plug-in.
  25.  
  26. WHAT DOES IT RUN ON?
  27.  
  28. I have tested the client on MacOS 8.5 PPC only. I have no
  29. reason to belive that it would not run on 8.1. It requires
  30. AppleShare Client 3.8.1 (or newer). The server works with
  31. AppleShare 6.1.
  32.  
  33. EXPORT ISSUES.
  34.  
  35. PGPuam does not contain any crypto code. It is purely for
  36. authentication use only. (In fact all Signatures and Random
  37. number generation is done via the PGPsdk) Therefor this code
  38. does not fall under jusidiction of ITAR.  Feel free to enjoy
  39. it.
  40.  
  41.  
  42. HOW DOES IT WORK?
  43.  
  44. Authentication with Cryptographic Signatures
  45.  
  46. E-mail communication on the Internet faces a security
  47. challenge similar to network user authentication. Since
  48. e-mail packets are broadcast through public networks, these
  49. messages can also be eavesdropped on  and counterfeited by
  50. unauthorized individuals. However e-mail vendors have been
  51. able to address this problem by leveraging public key
  52. cryptography to digitally sign and authenticate  e-mail
  53. messages.
  54.  
  55. In a public key cryptosystem, each user or principle
  56. generates a pair of mathematically-related cryptographic
  57. keys. These keys are created in such a way that it is
  58. computationally infeasible to derive one key from the other.
  59.  One of the keys is made publicly available to anyone who
  60. wishes to communicate with that user. The other key is kept
  61. private and never revealed to anyone else.  This private key
  62. is secured by either placing it in a hardware token or
  63. further encrypting it to a passphrase, or both. The private
  64. key is then used by the principal to digitally sign data.
  65. This digital signature can later be checked with the
  66. matching public key to ensure that the data has not been
  67. tampered with and that it originated from the holder of the
  68. private key.
  69.  
  70. Since the holder of the private key is the only entity who
  71. can create a digital signature that verifies with the
  72. corresponding public key, there is a strong correlation
  73. between a user’s identity and the ability to sign with that
  74. private key. Thus the public key can function as a
  75. principle’s identity in cyberspace .
  76.  
  77. Because they provide such strong testimony to the
  78. authenticity of the sender, public-key cryptographic systems
  79. are becoming very popular among today’s  Internet e-mail
  80. users.
  81.  
  82. The same digital signature technology that guarantees  the
  83. identity of the e-mail sender  can be used to strongly
  84. authenticate users of network services, too. By having the
  85. user sign a random challenge message from the server at
  86. login, the server can verify the identity of the user with
  87. his public key. The server randomly creates the challenge
  88. message to prevent replay attacks.  This process is
  89. illustrated in the following scenario :
  90.  
  91. 1. The user initiates network service access.
  92.  
  93. 2. The server looks up the user’s public key in its
  94. authentication database.   The server then generates a
  95. random challenge string and sends the challenge to the
  96. client.
  97.  
  98. 3. The client digitally signs the challenge string and
  99. returns the cryptographic  signature to the server.  The
  100. client also sends a counter challenge string which is used
  101. to verify the server’s authenticity.
  102.  
  103. 4. The server then checks the client’s signature and, if
  104. successful, grants access. It also signs  and returns the
  105. client’s counter-challenge.
  106.  
  107. This process provides several significant advantages  over
  108. password based user authentication systems:
  109.  
  110. - - Since the same key and passphrase used to sign e-mail
  111. messages is also used for server access, the user need only
  112. remember one passphrase.   This is done without the risks
  113. associated with passphrase  caches.
  114.  
  115. - -  Strong user authentication is provided by cryptographic
  116. digital signatures.
  117.  
  118. - -  Since the user maintains the only secret material in the
  119. system, compromising a server’s user database results in
  120. limited damage.
  121.  
  122. While similar systems have been proposed by a number of
  123. researchers they lacked the availability of a
  124. widely-accepted key infrastructure. Since PGP  already has a
  125. large key infrastructure, I have chosen to exploit this by
  126. building a challenge-response system using the PGP software
  127. developers kit (PGPsdk), which is avilable from the pgp
  128. website <http://www.pgp.com/sdk/>.
  129.  
  130. ABOUT THE CODE.
  131.  
  132. PGPuam is a Metrowerks Codewarrior PRO 4 project.  The code
  133. is considered sample code for now. It uses a bunch of
  134. technologies such as: CFM, Appearance Manager, Collections
  135. Manager, PGPsdk etc. So there is a lot to learn by examining
  136. the code itself.
  137.  
  138. HOW DO I BUILD IT?
  139.  
  140. 1) Before starting, you must get a copy of the PGPsdk. You
  141. can download it from <http://www.pgp.com/sdk/>. Place the
  142. Library and the Headers in the PGPsdkMac folder.
  143.  
  144. 2) Build the "PGPuam Client" Project.
  145.  
  146. - - Move the result, a file called "PGPuam" into either the
  147. Extensions folder or optionaly create folder titled
  148. "AppleShare Folder" place it in either the Extensions folder
  149. or System Folder and place the PGPuam  file in that folder.
  150.  
  151. 3) Build the "PGPuam Server" Project.
  152.  
  153. - -  The "PGPuam Server" files goes into the "AppleShare IP
  154. UAM" folder (found in Extensions folder) of the Server
  155. machine.
  156.  
  157. - - Unfortunately you must also Modify the "AppleShare IP
  158. Registry" SIZE resource to be something much larger than it
  159. is now. I suggest adding at least 1K more space.   You can
  160. use RESEDIT or whatever to do this.
  161.  
  162. Now comes the fun part, setting up the Keys.  As of this
  163. document date I haven't quite finished the code to upload
  164. keys into the AppleShare IP database. So for now its an ugly
  165. manual process.  I have a piece of incomplete code in the
  166. "In process" folder titled dumpuserInfo.c"
  167.  
  168. STAY TUNED.
  169.  
  170. I plan to actively update this code in the near future. So
  171. check the Website every now and them for the latest update.
  172.  
  173.  
  174. Vinnie Moscaritolo
  175.  World Wide DTS, Apple Computer.
  176. - ------------------ 
  177. http://www.vmeng.com/vinnie/ 
  178. DSS/DH: 3F903472C3AF622D5D918D9BD8B100090B3EF042
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. -----BEGIN PGP SIGNATURE-----
  188. Version: PGP 6.0
  189.  
  190. iQA/AwUBNiZWuR16LYZvFyoKEQLVxQCdHUpyS3rq/xegUrcg/Ted1uuEfjAAn0KU
  191. 2bt3Zs310d288x8eDAsVTJ5J
  192. =HIbc
  193. -----END PGP SIGNATURE-----
  194.